"""
字典
- {key:value, key:value, ......, key:value}
- 变量名称 = {key:value, key:value, ......, key:value}
- 变量名称 = {}
- 变量名称 = dict()

•使用{}存储原始，每一个元素是一个键值对
•每一个键值对包含Key和Value（用冒号分隔）
•键值对之间使用逗号分隔
•Key和Value可以是任意类型的数据（key不可为字典）
•Key不可重复，重复会对原有数据覆盖


字典数据的获取
字典同集合一样，不可以使用下标索引
但是字典可以通过Key值来取得对应的Value
"""

name = {"韦冬梅": 99, "米老鼠": 88, "皮卡丘": 77}
print(f"name里面的元素有{name},类型是{type(name)}")

name = {"韦冬梅": 99, "米老鼠": 88, "皮卡丘": 77}
print(name["韦冬梅"])
print(name["米老鼠"])
print(name["皮卡丘"])


# 字典可以嵌套
name = {
    "韦冬梅": {"语文": 99, "数学": 77, "英语": 45},
    "米老鼠": {"语文": 88, "数学": 99, "英语": 54},
    "皮卡丘": {"语文": 77, "数学": 88, "英语": 69},
}
print(name)
print(name["韦冬梅"])
print(name["韦冬梅"]["语文"])
print(name["米老鼠"]["数学"])
print(name["皮卡丘"]["英语"])

"""
字典的注意事项
键值对的Key和Value可以是任意类型（Key不可为字典）
字典内Key不允许重复，重复添加等同于覆盖原有数据
字典不可用下标索引，而是通过Key检索Value
"""


stu_score = {"王力宏": 77, "周杰伦": 88, "林俊杰": 99}
# 新增元素
stu_score["张学友"] = 66
print(stu_score)

# 更新元素
stu_score["张学友"] = 55
print(stu_score)

# 删除元素，获得指定Key的Value，同时字典被修改，指定Key的数据被删除，删除不存在的值会报错
my_stu_score = stu_score.pop("王力宏")
print(my_stu_score)


# 获取全部的key
print(stu_score.keys())  # dict_keys(['周杰伦', '林俊杰', '张学友'])
# 遍历
print("遍历===========================")
for key, value in stu_score.items():
    print(f"key:{key}, value:{value}")

print("遍历===========================")
for key in stu_score.keys():
    print(f"key:{key}, value:{stu_score[key]}")


# 计算字典中的元素数量
print(len(stu_score))

# 清空字典
stu_score.clear()
print(stu_score)


name = {
    "韦冬梅": {"部门": "科技部", "工资": 3000, "级别": 1},
    "米老鼠": {"部门": "市场部", "工资": 5000, "级别": 2},
    "皮卡丘": {"部门": "市场部", "工资": 7000, "级别": 3},
    "皮可熊": {"部门": "科技部", "工资": 4000, "级别": 1},
    "波赛冬": {"部门": "市场部", "工资": 6000, "级别": 2},
}

for i in name:
    if name[i]["级别"] == 1:
        name[i]["级别"] += 1
        name[i]["工资"] += 1000

print(f"{name}")
